package com.AdvancedDemos.FileAndIO;

import java.io.File;

public class 递归遍历文件夹 {
    public static void main(String[] args) {
        //设计方法,方法接收文件夹路径,递归遍历文件,打印文件名
        File file = new File("helloworld\\src\\com\\AdvancedDemos\\FileAndIO");
        showFilePath(file);
    }

    public static void showFilePath(File path) {
        File[] files = path.listFiles();//获取当前文件夹内所有的文件/文件夹的路径
        for (File file : files) {
//            System.out.println(file);
            //helloworld\src\com\AdvancedDemos\FileAndIO\a.txt
            //helloworld\src\com\AdvancedDemos\FileAndIO\aaa
            //helloworld\src\com\AdvancedDemos\FileAndIO\bbb
            //helloworld\src\com\AdvancedDemos\FileAndIO\ccc
            //helloworld\src\com\AdvancedDemos\FileAndIO\LearnFile.java
            //helloworld\src\com\AdvancedDemos\FileAndIO\递归遍历文件夹.java

            //判断file是文件还是文件夹
            if (file.isFile()) {
                //表示是文件,获取文件名并打印
                System.out.println("文件:" + file.getPath());
            } else {
                //表示是文件夹
//                System.out.println(file + "是文件夹");
                if (file.listFiles().length == 0) {
                    //表示文件夹是空的
                    System.out.println("空目录:" + file.getPath());
                }
                showFilePath(file);
            }
        }
    }
    /**
     * 文件:helloworld\src\com\AdvancedDemos\FileAndIO\a.txt
     * 空目录:helloworld\src\com\AdvancedDemos\FileAndIO\aaa
     * 空目录:helloworld\src\com\AdvancedDemos\FileAndIO\bbb\ccc
     * 文件:helloworld\src\com\AdvancedDemos\FileAndIO\ccc\ddd\eee\a.txt
     * 文件:helloworld\src\com\AdvancedDemos\FileAndIO\LearnFile.java
     * 文件:helloworld\src\com\AdvancedDemos\FileAndIO\递归遍历文件夹.java
     */

}
